#include "stdafx.h"

typedef struct _BIO_HELPER_CONTEXT BIO_HELPER_CONTEXT, *PBIO_HELPER_CONTEXT;

typedef void (WINAPI *PFN_BIO_HELPER_CALLBACK)(
    __in            PBIO_HELPER_CONTEXT pCtx);

typedef struct _BIO_HELPER_CONTEXT
{
    __in            PFN_BIO_HELPER_CALLBACK pfnCallback;
    __in            PVOID pvCallerCtx;

    __inout         WINBIO_SESSION_HANDLE hSession;

    __out           HRESULT hrIdentify;
    __out           LPWSTR wszMatchedUser;
    __out           LPWSTR wszMatchedDomain;
    __out           BOOL fMatchesLoggedOnUser;
} BIO_HELPER_CONTEXT, *PBIO_HELPER_CONTEXT;

HRESULT
WINAPI
BHInitialize(
    __inout         PBIO_HELPER_CONTEXT pCtx);

void
WINAPI
BHCleanup(
    __inout         PBIO_HELPER_CONTEXT pCtx);

HRESULT
WINAPI
BHIdentifyAsync(
    __inout         PBIO_HELPER_CONTEXT pCtx);

HRESULT
WINAPI
BHIdentifyAsLoggedOnUser(
	__out			BOOL *pfIsLoggedOnUser,
	__out			ULONG *pulRejectDetail);

HRESULT
WINAPI
BHCancel(
    __inout         PBIO_HELPER_CONTEXT pCtx);
